package br.com.exatta.dados;

import java.sql.Time;
import java.util.Date;

import javax.persistence.Basic;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
public class Viagem extends EntidadeImpl {


	private static final long serialVersionUID = 3884258315725907905L;

	private Long catracaFinal;

	private Long catracaInicial;

	private String codigo;

	private Date dataViagem;

	private Time horaChegada;

	private Time horaSaida;

	private Linha linha;

	private Integer numeroOrdemVeiculo;

	private Pesquisador pesquisadorA;

	private Pesquisador pesquisadorB;

	private Pesquisador pesquisadorC;

	private Supervisor supervisor;

	private String talaoFinalA;

	private String talaoFinalB;

	private String talaoFinalC;

	private String talaoInicialA;

	private String talaoInicialB;

	private String talaoInicialC;
	
	private Terminal terminal;

	public Viagem() {

	}
	
	@ManyToOne
	@JoinColumn(name = "terminal_id")
	public Terminal getTerminal() {
		return terminal;
	}
	
	public void setTerminal(Terminal terminal) {
		this.terminal = terminal;
	}

	@Basic
	public Long getCatracaFinal() {
		return catracaFinal;
	}

	@Basic
	public Long getCatracaInicial() {
		return catracaInicial;
	}

	@Basic
	public String getCodigo() {
		return codigo;
	}

	@Temporal(TemporalType.DATE)
	public Date getDataViagem() {
		return dataViagem;
	}

	@Basic
	public Time getHoraChegada() {
		return horaChegada;
	}

	@Basic
	public Time getHoraSaida() {
		return horaSaida;
	}

	@Override
	@Id
	@SequenceGenerator(name = "SEQ_VIAGEM", sequenceName = "SEQ_VIAGEM", allocationSize = 1)
	@GeneratedValue(generator = "SEQ_VIAGEM", strategy = GenerationType.SEQUENCE)
	public Long getId() {
		return id;
	}

	@ManyToOne
	@JoinColumn(name= "linha_id")
	public Linha getLinha() {
		return linha;
	}

	@Basic
	public Integer getNumeroOrdemVeiculo() {
		return numeroOrdemVeiculo;
	}

	@ManyToOne
	@JoinColumn(name = "pesquisadorA_id")
	public Pesquisador getPesquisadorA() {
		return pesquisadorA;
	}

	@ManyToOne
	@JoinColumn(name = "pesquisadorB_id")
	public Pesquisador getPesquisadorB() {
		return pesquisadorB;
	}

	@ManyToOne
	@JoinColumn(name = "pesquisadorC_id")
	public Pesquisador getPesquisadorC() {
		return pesquisadorC;
	}

	@ManyToOne
	@JoinColumn(name = "supervisor_id")
	public Supervisor getSupervisor() {
		return supervisor;
	}

	@Basic
	public String getTalaoFinalA() {
		return talaoFinalA;
	}

	@Basic
	public String getTalaoFinalB() {
		return talaoFinalB;
	}

	@Basic
	public String getTalaoFinalC() {
		return talaoFinalC;
	}

	@Basic
	public String getTalaoInicialA() {
		return talaoInicialA;
	}

	@Basic
	public String getTalaoInicialB() {
		return talaoInicialB;
	}

	@Basic
	public String getTalaoInicialC() {
		return talaoInicialC;
	}

	public void setCatracaFinal(Long catracaFinal) {
		this.catracaFinal = catracaFinal;
	}

	public void setCatracaInicial(Long catracaInicial) {
		this.catracaInicial = catracaInicial;
	}

	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}

	public void setDataViagem(Date dataViagem) {
		this.dataViagem = dataViagem;
	}

	public void setHoraChegada(Time horaChegada) {
		this.horaChegada = horaChegada;
	}

	public void setHoraSaida(Time horaSaida) {
		this.horaSaida = horaSaida;
	}

	public void setLinha(Linha linha) {
		this.linha = linha;
	}

	public void setNumeroOrdemVeiculo(Integer numeroOrdemVeiculo) {
		this.numeroOrdemVeiculo = numeroOrdemVeiculo;
	}

	public void setPesquisadorA(Pesquisador pesquisadorA) {
		this.pesquisadorA = pesquisadorA;
	}

	public void setPesquisadorB(Pesquisador pesquisadorB) {
		this.pesquisadorB = pesquisadorB;
	}

	public void setPesquisadorC(Pesquisador pesquisadorC) {
		this.pesquisadorC = pesquisadorC;
	}

	public void setSupervisor(Supervisor supervisor) {
		this.supervisor = supervisor;
	}

	public void setTalaoFinalA(String talaoFinalA) {
		this.talaoFinalA = talaoFinalA;
	}

	public void setTalaoFinalB(String talaoFinalB) {
		this.talaoFinalB = talaoFinalB;
	}

	public void setTalaoFinalC(String talaoFinalC) {
		this.talaoFinalC = talaoFinalC;
	}

	public void setTalaoInicialA(String talaoInicialA) {
		this.talaoInicialA = talaoInicialA;
	}

	public void setTalaoInicialB(String talaoInicialB) {
		this.talaoInicialB = talaoInicialB;
	}

	public void setTalaoInicialC(String talaoInicialC) {
		this.talaoInicialC = talaoInicialC;
	}

}
